<template>
  <div>
    <!-- 面包屑导航 S -->
    <el-breadcrumb separator-class="el-icon-arrow-right">
      <el-breadcrumb-item :to="{ path: '/welcome' }">首页</el-breadcrumb-item>
      <el-breadcrumb-item>数据统计</el-breadcrumb-item>
      <el-breadcrumb-item>数据报表</el-breadcrumb-item>
    </el-breadcrumb>
    <!-- 面包屑导航 E -->
    <!-- 主体卡片区域 S -->
    <el-card class="box-card">
      <!-- echarts 图表容器 -->
      <div id="main"></div>
    </el-card>
    <!-- 主体卡片区域 E -->
  </div>
</template>

<script>
import * as echarts from 'echarts'
export default {
  data() {
    return {
      options: {}
    }
  },

  mounted() {
    // 能获取到DOM时再触发
    this.initReports()
  },
  methods: {
    // 请求报表数据、X轴和Y轴的数据
    async getReportsOptions() {
      const data = await this.$axios.get('/reports/type/1')
      if (data.meta.status !== 200) return this.$message.error('获取报表数据失败！')
      this.$message.success('获取报表数据成功~')
      return data.data
    },
    // 初始化报表
    async initReports() {
      const myChart = echarts.init(document.querySelector('#main'))
      this.options = await this.getReportsOptions()
      this.options = {
        title: {
          // 图表标题
          text: '用户来源'
        },
        // 指示器
        tooltip: {
          // 触发类型为坐标轴触发
          trigger: 'axis',
          axisPointer: {
            // 十字准心的指示器
            type: 'cross',
            label: {
              // 提示标签的背景颜色
              backgroundColor: '#6a7985'
            }
          }
        },
        // 设置图表和盒子的边距
        grid: {
          left: '3%',
          right: '10%',
          bottom: '1%',
          // 刻度标签是否贴着grid
          containLabel: true
        },
        ...this.options
      }
      // 设置X轴两侧留不留白
      this.options.xAxis[0].boundaryGap = false
      myChart.setOption(this.options)
    }
  }
}
</script>

<style scoped lang='less'>
#main {
  width: 800px;
  height: 500px;
}
</style>
